﻿namespace DistrRTgen
{
    using System;
    using System.Collections.Generic;
    using rtgen_worker;

    internal class ChainCheckHash
    {
        private uint _ChainLength;
        private Queue<RainbowCrackChain> _Chains;
        private string _Charset;
        private int _ErrorCode;
        private DateTime _ExpireTime;
        private string _Hash;
        private string _HashRoutine;
        private uint _Index;
        private bool _InUse;
        private uint _MaxLetters;
        private uint _MinLetters;
        private string _Password;
        private uint _RequestID;
        private string _Salt;

        public ChainCheckHash(uint RequestID, string Hash, string HashRoutine, string Charset, uint ChainLength, uint MinLetters, uint MaxLetters, uint Index, string Salt, DateTime ExpireTime, Queue<RainbowCrackChain> Chains)
        {
            this._RequestID = RequestID;
            this._Hash = Hash;
            this._HashRoutine = HashRoutine;
            this._Charset = Charset;
            this._ChainLength = ChainLength;
            this._MinLetters = MinLetters;
            this._MaxLetters = MaxLetters;
            this._Index = Index;
            this._Salt = Salt;
            this._ExpireTime = ExpireTime;
            this._Chains = Chains;
        }

        public uint ChainLength
        {
            get
            {
                return this._ChainLength;
            }
            set
            {
                this._ChainLength = value;
            }
        }

        public Queue<RainbowCrackChain> Chains
        {
            get
            {
                return this._Chains;
            }
        }

        public string Charset
        {
            get
            {
                return this._Charset;
            }
            set
            {
                this._Charset = value;
            }
        }

        public int ErrorCode
        {
            get
            {
                return this._ErrorCode;
            }
            set
            {
                this._ErrorCode = value;
            }
        }

        public DateTime ExpireTime
        {
            get
            {
                return this._ExpireTime;
            }
        }

        public string Hash
        {
            get
            {
                return this._Hash;
            }
            set
            {
                this._Hash = value;
            }
        }

        public string HashRoutine
        {
            get
            {
                return this._HashRoutine;
            }
            set
            {
                this._HashRoutine = value;
            }
        }

        public uint Index
        {
            get
            {
                return this._Index;
            }
            set
            {
                this._Index = value;
            }
        }

        public bool InUse
        {
            get
            {
                return this._InUse;
            }
        }

        public uint MaxLetters
        {
            get
            {
                return this._MaxLetters;
            }
            set
            {
                this._MaxLetters = value;
            }
        }

        public uint MinLetters
        {
            get
            {
                return this._MinLetters;
            }
            set
            {
                this._MinLetters = value;
            }
        }

        public string Password
        {
            get
            {
                return this._Password;
            }
            set
            {
                this._Password = value;
            }
        }

        public uint RequestID
        {
            get
            {
                return this._RequestID;
            }
            set
            {
                this._RequestID = value;
            }
        }

        public string Salt
        {
            get
            {
                return this._Salt;
            }
            set
            {
                this._Salt = value;
            }
        }
    }
}

